.\" URL: http://selinux-i18n-manpages.googlecode.com/svn/trunk/upstream/refpolicy/man8/ftpd_selinux.8
.\" Revision: 4
.\" ---- Changelog
.\"
.TH  "ftpd_selinux"  "8"  "17 Jan 2005" "dwalsh@redhat.com" "ftpd向けSELinuxポリシー文書"
.SH "名前"
ftpd_selinux \- FTPデーモン向けSELinuxセキュリティポリシー
.SH "DESCRIPTION"

SELinux (Security-Enhanced Linux) は、細粒度の強制アクセス制御によって ftpd サーバをセキュアにする。

.SH FILE_CONTEXTS
SELinuxを利用するには、ファイルが自身のタイプを定義するために拡張属性(XATTR)を持つ事が必要である。
セキュリティポリシーは、デーモンがこれらのファイルへアクセスすることを制御する。
匿名FTPでファイルを共有しようとするならば、これらのファイル・ディレクトリは public_context_t とラベル付けされる必要がある。
例えば、匿名FTPアクセスのために/var/ftpディレクトリを作成したら、chconコマンドを用いてこのディレクトリをラベル付けしなければならない。
.TP
chcon -R -t public_content_t /var/ftp
.TP
もし、ファイルをアップロード可能なディレクトリをセットアップするつもりなら、これらのディレクトリは ftpd_anon_rw_tとラベル付けされている必要がある。例えば、ファイルをアップロードするために/var/ftp/incomingディレクトリを作成した場合、以下のようにchconコマンドを用いてラベル付けを行なう必要がある。
.TP
chcon -t public_content_rw_t /var/ftp/incoming
.TP
また、条件変数allow_ftpd_anon_writeをセットする事も必要である。
.TP
setsebool -P allow_ftpd_anon_write=1
.TP
ファイルのラベルはrestorecon(8)によって再設定される場合がある。このラベル付けを永続的なものとするためには、file_contexts.local ファイルに以下のようなエントリを追加しなければならない。
.TP
/etc/selinux/POLICYTYPE/contexts/files/file_contexts.local
.br
/var/ftp(/.*)? system_u:object_r:public_content_t
/var/ftp/incoming(/.*)? system_u:object_r:public_content_rw_t

.SH "条件変数(BOOLEANS)"
ftpd用のSELinuxポリシーは、最小権限の考え方に基づいてカスタマイズ可能である。したがって、デフォルト状態のSELinuxポリシーは、ユーザがftpdにログインしホームディレクトリを参照することを許可していない。
.br
ホストをftpdサーバとしてセットアップし、ユーザに自身のホームディレクトリを参照させたいなら、条件変数ftp_home_dirをセットすることが必要である。
.TP
setsebool -P ftp_home_dir 1
.TP
ftpdはxinetd経由で実行可能だが、スタンドアロンのデーモンとしても実行可能である。ftpdをデーモンとして実行するなら、条件変数ftpd_is_daemonセットしなければならない。
.TP
setsebool -P ftpd_is_daemon 1
.br
service vsftpd restart
.TP
GUIツールであるsystem-config-selinuxを用いて、SELinuxのポリシー設定をカスタマイズすることも可能である。
.SH "著者"
このページは Dan Walsh <dwalsh@redhat.com> が執筆した。
.br
翻訳は KaiGai Kohei <kaigai@ak.jp.nec.com> が行なった。

.SH "関連項目"
selinux(8), ftpd(8), chcon(1), setsebool(8)


